package com.zsw.exception;
import lombok.Getter;

/**
 * @author zhangsw
 */

@Getter
public enum UserErrorEnum {

    /**
     * 成功
     */
    SUCCESS("200", "成功"){
        /**
         * 所有微服务的成功code都统一为0 ！
         * 如果有前端对接的话，一般认定某个固定code就是正常code
         * 如果每个微服务不一致的话，前端对接的时候应该头很大
         * @return
         */
        @Override
        public String getCode() {
            return "0";
        }
    },
    /**
     * 系统异常
     */
    SYS_ERROR("001", "系统异常"),

    /**
     *校验参数有误
     */
    VALID_ERROR("002", "校验参数有误"),

    /**
     *邮箱已被占
     */
    EMAIL_EXIST_ERROR("101", "邮箱已被占"),
    /**
     *账号不存在
     */
    USER_NOT_EXIST_ERROR("102", "账号不存在"),
    /**
     *账号密码错误
     */
    USER_PASSWORD_ERROR("103", "账号密码错误"),
    /**
     *凭据验证无效
     */
    TOKEN_MISSION("201","凭据验证无效")
    ;

    private String code;
    private String msg;

    UserErrorEnum(String code, String msg) {
        this.code = code;
        this.msg = msg;
    }

    /**
     * //其中的前缀10表示的是用户服务。每个服务建议都使用唯一的前缀标识。
     * //这样当上游服务接收到下游服务抛出异常的情况下，就知道是哪个微服务出现了问题
     * @return
     */
    public String getCode() {
        return "10" + code;
    }
}